package org.flyking.tool;

import com.alibaba.excel.EasyExcel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.poi.ss.formula.functions.T;
import org.flyking.data.Requirement;

import java.io.File;
import java.util.List;


public class Read {
    private static final Logger logger = LogManager.getLogger(Read.class);
    static public  List<Requirement> readExcelData(String filename, Class dataClass){
        File file = new File(filename);

        if (!file.exists()) {
            logger.error(filename+"file is not exist");
            return null;
        }

        // 创建监听器（用于增量加载数据）
        RequirementListener listener = new RequirementListener();
    /**
        // 读取时可添加以下优化参数
        EasyExcel.read(fileName, Requirement.class, listener)
                .readCache(new LinkedHashMap<>(100))  // 设置行缓存数量
                .autoTrim(true)                      // 自动去除空格
                .ignoreEmptyRow(true)                // 忽略空行
                .sheet()
                .doRead();
     **/
        // 开始读取（使用SAX模式，内存友好）
        EasyExcel.read(filename, dataClass, listener)
                .sheet()  // 默认读取第一个Sheet
                .doRead();
       return listener.getTotalList();
    }

    static public String getCurDir(){
        // 获取当前目录
       return System.getProperty("user.dir");
    }

    static public String getClsPath(){
        // 获取当前目录
        return System.getProperty("java.class.path");
    }
}
